Today's business applications are based on division of labor and collaboration. The assignment of specific tasks to certain executable and reusable components of software enables creation of complex business applications through composition of various software components. A software component itself is either composed of other sub components or is made of units of work which keep track of the context and take into account relationships, data and rule based constraints.
The software components that make up an application are tested to assure the quality (e.g., in terms of its functionality, robustness and performance) in order to guarantee the quality of the overall application itself. Test coverage is one indicator of the effectiveness of the testing. However, determining the test coverage of the software components in a manner that is contextual to the requirements of various testing scenarios can be a challenge. Test coverage information can be very useful if in addition to determining whether the testing is adequate it is also directed to the code that is of interest. For example, results of the test coverage analysis can be used to identify software components for which additional tests are required to raise the overall test coverage indices. Moreover, test coverage results can be used to calculate Quality Key Process Indicators (KPIs) that allow for a formal description of the quality of part of software.